במדריך בונים פריימוורק - ניתוב קונטרולרים נתון קובץ htaccess.
איך הוא משפיע על הכתובות ובא לידי ביטוי?
אם אני רוצה לגשת לקונטרולר MainController למטודה Main - זה הכתובת: matan.co.il/Main/Main ?

7 תשובות

avatar ענה intval ב 21 לינואר 2013 #

# להפעיל את מנוע הרירייט
RewriteEngine On

# אם הנתיב שהוזן לא מוביל ישירות לתיקיה
RewriteCond %{REQUEST_FILENAME} !-d

# וגם אם הנתיב שהוזן אינו מוביל ישירות לקובץ
RewriteCond %{REQUEST_FILENAME} !-f

# וגם אם הנתיב שהוזן אינו symbolic link
RewriteCond %{REQUEST_FILENAME} !-l

# אם כל התנאים למעלה מתקיימים כולם ביחד, אז
# להפנות את כל כל כל הכתובות שהוזנו אל הכתובת
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
# כאשר $1 מסמן את הטקסט שהוזן בתור כתובת
#ראה דוגמאות למטה



אם למשל הכתובת שאליה פנו היא
site.com/style.css
ויש קובץ כזה style.css אז התנאי לא יופעל
אם הוזנה כתובת שהיא לא קיימת בשרת (לא תיקיה, לא קובץ ולא קישור סימבולי)
אז יתבצע התנאי של העעברה.

התנאי של העברה אומר
.com/123hellosite.com/ANYTHING_THAT_COMES_HERE
יופנה לכתובת
index.php?url=ANYTHING_THAT_COMES_HERE.com/123hello
כלומר אל קובץ האינדקס עם הכתובת בתור פרמטר.

נשאר להבין מה עושה הקוד בקובץ האינדקס עם הפרמטר הזה. תסתדר לבד?

avatar ענה mtndiv ב 21 לינואר 2013 #

תודה אלכס את זה אני הבנתי, וגם עם ה-php אני מסתדר מצוין.. פשוט הבעיה היא שאצלי מתקבל ארור.
Internal Server Error

אשמח לתשובה מהירה, תודה רבה!

avatar ענה mtndiv ב 21 לינואר 2013 #

שחכתי להוסיף: השאלה שלי היא איך פותרים את הארור הזה? תודה!

avatar ענה intval ב 21 לינואר 2013 #

פותחים את הלוג של אפאצ'י וקוראים מה השגיאה.
אי אפשר לנחש ממה נובעת השגיאה רק על סמח זה שכתוב לך על המסך "שגיאה".
רוב הסיכויים שלא הפעלת את mod_rewrite

בכל אופן, פתח את הלוג ותסתכל מה כתוב בו.

avatar ענה mtndiv ב 21 לינואר 2013 #

הפעלתי את mod_rewrite. ואני לא יודע איך נכנסים ללוג של האפאצ'י.
מה שכן מישהו אמר לי שצריך לשנות את ההגדרות של HTTPD.CONF, אבל אני לא יודע איזה הגדרות לשנות בידיוק.

avatar ענה OrelBeY ב 21 לינואר 2013 #

הערת אגב:
עד עכשיו לא קלטתי ש-RewriteCond זה תנאי. D:
אולי באמת הגיע הזמן ללמוד קצת להשתמש ב-htaccess.
תודה, אלכס. :-)

avatar ענה mtndiv ב 21 לינואר 2013 #

לא משנה הסתדרתי, הייתי צריך להתקין מחדש את ה-WAMP, כנראה ההגדרות השתנו. תודה בכל זאת